package lists;
import tester.cobertura.Instrument;

/**
 * A Function is an interface that forces Function Function objects to
 * have an f method. f is used to evaluate expressions on the type T
 * that returns the type O.
 * 
 * @author Adam
 * @param <R>
 * @param <T>
 * @param <U>
 */
@Instrument public interface BinaryFunction<R, T, U> {
  /**
   * @param first
   * @param second
   * @return O
   */
  public abstract R f(T first, U second);
}
